export interface CardProps {
    radius : string,
    padding : string,
    background : string,
    titleBarStyle : string,
    titleBar : any,
    customStyles : any
}
type FontWeight = 'bold' | 'normal' | number;
export const defaultCardProps : CardProps = {
    radius: "25",
    padding: "0",
    background: "#fff",
    titleBarStyle: "text",//text,slot,icon
    titleBar: () => ({
        title: '',
        subtitle: '',
        fontSize: '32rpx',
        fontWeight: 'bold',
        subTitleFontSize: '26rpx',
    }),
    customStyles: () => ({})
}

export interface ButtonProps {
    size : string,
    type : string,
    bgColor : string,
    title : string,
    borderRadius : string,
    width ?: string | undefined,
    height ?: string | undefined,
    fontSize ?: string,
    color : string,
    borderColor ?: string,
    fontWeight : FontWeight,
    icon : string,
    transition : boolean,
    customStyles : Record<string, string>
}

export interface iconInfo {
    icon : string,
    iconColor : string,
    iconSize : string,
    name : string,
    tag : string,
    path : string
}
export const defaultIconInfo : iconInfo = {
    icon: "",
    iconColor: "",
    iconSize: "50rpx",
    name: "",
    tag: "",
    path: ''
}
export interface functionButtonGroupProps {
    iconInfo : iconInfo[]
};
export interface ListComponentProps {
    title : string,
    titleBlod : string,
    subTitle : string,
    imageHeight : string,
    imageWidth : string,
    imagePosition : string,
    imageRadius : string,
    priceInfo : any,
    taskInfo : any,
    buttonStyleConfig : any,
    extraLabel : string,
    extraInfoLayout : string,
    extraLabelColor : string,
    extraInfo : string,
    extraLabelStyle : string
}
export const defaultListComponentProps : ListComponentProps = {
    title: '',
    titleBlod: '',
    subTitle: '',
    imageHeight: '',
    imageWidth: '',
    imagePosition: '',
    imageRadius: '',
    priceInfo: () => ({
        current: '',
        original: '',
    }),
    taskInfo: () => ({
        key: '',
        text: '',
    }),
    buttonStyleConfig: () => ({
        text: '',
        color: '',
        width: '',
        height: '',
        transition: '',
        background: '',
        radius: '',
        fontSize: '',
        textColor: ''
    }),
    extraLabel: '',
    extraInfoLayout: 'normal',
    extraLabelColor: '',
    extraInfo: '',
    extraLabelStyle: '' //text,fill
}
export interface TitleProps {
    fontSize : number,
    color : string,
    fontWeight : FontWeight,
    name : string,
    icon : string
}
export const defaultTitle : TitleProps = {
    fontSize: 30,
    color: "#000",
    fontWeight: "normal",
    name: "",
    icon: ''
}
export interface IntroductionProps {
    title : string,
    desc : string,
    price : any
}
export const defaultIntroductionProps : IntroductionProps = {
    title: '',
    desc: '',
    price: () => ({
        current: '',
        original: ''
    })
}
export interface TabBarProps {
    theme : string
}
export const defaultTabBarProps : TabBarProps = {
    theme: 'default' //'default','custom','empty'
}